#مصاحبه
همهی ما تا وقتی تجربه کسب نکنیم، از مصاحبه برای خودمون یک دیو میسازیم.
برای من اینطوری نیست و برای افراد نزدیک بهم هم اینطور نیست، چندروز قبل یک مصاحبه با شرکتی در سوییس داشتم و تا ۱۰ دقیقه قبل از مصاحبه فنی داشتم سیستمم رو تعمیر میکردم.
چطوری به این آرامش رسیدم:
اوایل شروع کارم مصاحبه هم برای من بسیار سخت بود، بخصوص اینکه من برای
کاری که خودم کردم، فرمول و نسخهای بود که برای همه میپیچم؛ بین دوستان هم اسمش شده ۱۰۰ تا مصاحبه.
به این صورت هست :
۱- زمینه مدنظر خودت رو انتخاب میکنی، یعنی اگر گفتی بکند و مصاحبه هوش مصنوعی گرفتی اون مصاحبه هوش جزو ۱۰۰ تا مصاحبه بکند حساب نمیشه.
۲- شروع میکنی رزومه فرستادن (شرکتش نباید برات مهم باشه؛ دستمزد و قرارداد و لوکیشن وقتی مهم هست که بخوای بری ولی برای تمرین مصاحبه هر شرکتی خوب هست 😉)
همینجا ۲ حالت پیش میاد؛یا رزومه شما بیش از ۷۰٪ مواقع به مصاحبه ختم میشه یا عددی کمتر ازین هست.
اگر بیش از ۷۰٪ بود، از شماره ۳ به بعد رو بخونید اما اگر کمتر از ۷۰٪ هست، همینجا ادامه بدید؛ حالا که کمتر از ۷۰٪ جاهایی که رزومه فرستادید به مصاحبه دعوت میشید؛ باز هم دوحالت خواهد داشت :
۱- یا رزومه خوبی ننوشتید، که باید روزمه رو آپدیت و استاندارد کنید (چندتا لایو گذاشتم، جوابم داد به بچهها ولی ضبط شده ندارم)
۲- یا رزومه و کارهای شما سطح درستی از شما رو نمیده؛ یعنی با توجه به رزومه جونیور برداشت میشه ولی برای سطح بالاتر درخواست دادید.
که توی پستهای دیشب گفتم بچهها چطور از Grok3 برای این موضوع استفاده کردند.
۳- فرض کنیم شما به مصاحبه دعوت میشید، ولی با درصد خیلی پایینی موفق به قبول در مصاحبه میشید (همینجا بگم، هیچکس ۱۰۰٪ مصاحبههاش رو قبول نمیشه، مصاحبه فقط بحث فنی نیست؛ خیلی وقتا تکنولوژی خاص مدنظر هست، نوع برخورد و نوع کد زدن و استانداردها و ...)
اینجا شما باید ۱۰۰ تا مصاحبه شرکت کنید؛ قبل از اینکه نا امید بشید یا تغییر فیلد کاری بدید یا بخواید کار دیگه بکنید؛ با این تفاوت که.
همیشه توی مصاحبهها قلم و کاغذ با خودتون باید داشته باشید.
سوالات اصلی مصاحبه رو بنویسید، یا اینکه مصاحبه رو ضبط کنید؛ چه سوالاتی که بنظر خودتون درست جواب دادید چه سوالاتی که غلط جواب دادید یا بلد نبودید.
بعد از مصاحبه، دنبال جواب درست سوالات میگردید (به لطف
قبل از اینکه به مصاحبه بعدی برسید، باید مواردی که بلد نبودید یا دست و پا شکسته جواب دادید رو انقدر بخونید که تسلط پیدا کنید روش.
با درصد بالایی مطمئنم اگر اینکار رو انجام بدید، بعد از ۱۵ تا مصاحبه استاندارد، دیگه سوال مهمی توی زمینه کاری که روزمه میدادید وجود نخواهد داشت که نشنیده باشید یا نتونید جواب بدید.
————
این فرمولم برای کسانی که توی مسیر یادگیری هستند و هدفشون کار پیدا کردن هست؛ راجب هر سر فصلی که میخونید، به یکی از ابزارهای هوش مصنوعی (پیشنهادم
اینطوری وقتی شروع میکنید برای کار اول درخواست دادن؛ آمادگی نسبتاً خوبی هم برای مصاحبه خواهید داشت.
حواستون باشه؛ کسایی که دنبال کار اول هستند انقدر کم مصاحبه میگیرند که هر دونهاش خودش یک الماس هست؛ راحت از دستشون ندید.
راستی: اگر ۱۰۰ تا مصاحبه رو شرکت کردید و همرو از نظر فنی رد شدید؛
متأسفم، شما بهتره زمینه کاری خودتون رو عوض کنید.
پ.ن:
من بدون مصاحبه فنی هم وارد هیچ شرکتی نمیشم مگر اینکه مدیرانی که باهاش کار میکنم رو بشناسم.
چون اینطوری هم اونها از استانداردها و سواد من باخبر میشوند هم من با استانداردهای اونها آشنا میشم و متوجه سواد تیم خواهم شد.
خیلی وقتا خودم کسی هستم که درخواست مصاحبه فنی میده.
همهی ما تا وقتی تجربه کسب نکنیم، از مصاحبه برای خودمون یک دیو میسازیم.
برای من اینطوری نیست و برای افراد نزدیک بهم هم اینطور نیست، چندروز قبل یک مصاحبه با شرکتی در سوییس داشتم و تا ۱۰ دقیقه قبل از مصاحبه فنی داشتم سیستمم رو تعمیر میکردم.
چطوری به این آرامش رسیدم:
اوایل شروع کارم مصاحبه هم برای من بسیار سخت بود، بخصوص اینکه من برای
Machine Learning
دنبال کار بودم؛ پیشنهاداتی از تیمهای بزرگ به سختی میگرفتم ولی رد میشدم؛ Facebook
توی همون مرحله اول رد شدم، Amazon
رو مدتی بعد توی مرحله دوم ولی نهایتاً وارد یکی از پروژههای Netflix
شدم و فاصله همهی این مصاحبهها با هم تقریباً ۳ ماه بود.کاری که خودم کردم، فرمول و نسخهای بود که برای همه میپیچم؛ بین دوستان هم اسمش شده ۱۰۰ تا مصاحبه.
به این صورت هست :
۱- زمینه مدنظر خودت رو انتخاب میکنی، یعنی اگر گفتی بکند و مصاحبه هوش مصنوعی گرفتی اون مصاحبه هوش جزو ۱۰۰ تا مصاحبه بکند حساب نمیشه.
۲- شروع میکنی رزومه فرستادن (شرکتش نباید برات مهم باشه؛ دستمزد و قرارداد و لوکیشن وقتی مهم هست که بخوای بری ولی برای تمرین مصاحبه هر شرکتی خوب هست 😉)
همینجا ۲ حالت پیش میاد؛یا رزومه شما بیش از ۷۰٪ مواقع به مصاحبه ختم میشه یا عددی کمتر ازین هست.
اگر بیش از ۷۰٪ بود، از شماره ۳ به بعد رو بخونید اما اگر کمتر از ۷۰٪ هست، همینجا ادامه بدید؛ حالا که کمتر از ۷۰٪ جاهایی که رزومه فرستادید به مصاحبه دعوت میشید؛ باز هم دوحالت خواهد داشت :
۱- یا رزومه خوبی ننوشتید، که باید روزمه رو آپدیت و استاندارد کنید (چندتا لایو گذاشتم، جوابم داد به بچهها ولی ضبط شده ندارم)
۲- یا رزومه و کارهای شما سطح درستی از شما رو نمیده؛ یعنی با توجه به رزومه جونیور برداشت میشه ولی برای سطح بالاتر درخواست دادید.
که توی پستهای دیشب گفتم بچهها چطور از Grok3 برای این موضوع استفاده کردند.
۳- فرض کنیم شما به مصاحبه دعوت میشید، ولی با درصد خیلی پایینی موفق به قبول در مصاحبه میشید (همینجا بگم، هیچکس ۱۰۰٪ مصاحبههاش رو قبول نمیشه، مصاحبه فقط بحث فنی نیست؛ خیلی وقتا تکنولوژی خاص مدنظر هست، نوع برخورد و نوع کد زدن و استانداردها و ...)
اینجا شما باید ۱۰۰ تا مصاحبه شرکت کنید؛ قبل از اینکه نا امید بشید یا تغییر فیلد کاری بدید یا بخواید کار دیگه بکنید؛ با این تفاوت که.
همیشه توی مصاحبهها قلم و کاغذ با خودتون باید داشته باشید.
سوالات اصلی مصاحبه رو بنویسید، یا اینکه مصاحبه رو ضبط کنید؛ چه سوالاتی که بنظر خودتون درست جواب دادید چه سوالاتی که غلط جواب دادید یا بلد نبودید.
بعد از مصاحبه، دنبال جواب درست سوالات میگردید (به لطف
Grok, Gemini, ...
این کار به مراتب راحتتر شده) یا اون مطلب رو بلد بودید و کاملاً درست جواب دادید، یا توش ضعف داشتید و بلد نبودید.قبل از اینکه به مصاحبه بعدی برسید، باید مواردی که بلد نبودید یا دست و پا شکسته جواب دادید رو انقدر بخونید که تسلط پیدا کنید روش.
با درصد بالایی مطمئنم اگر اینکار رو انجام بدید، بعد از ۱۵ تا مصاحبه استاندارد، دیگه سوال مهمی توی زمینه کاری که روزمه میدادید وجود نخواهد داشت که نشنیده باشید یا نتونید جواب بدید.
————
این فرمولم برای کسانی که توی مسیر یادگیری هستند و هدفشون کار پیدا کردن هست؛ راجب هر سر فصلی که میخونید، به یکی از ابزارهای هوش مصنوعی (پیشنهادم
Grok3
هست) مراجعه کنید و ازش بخواید راجب فقط اون سر فصل از شما مصاحبه بگیره. چندتا سوال بهتون میده جوابهاش رو مینویسید، امتیاز بهتون میده و در نهایت جواب درست رو هم از خودش میگیرید.اینطوری وقتی شروع میکنید برای کار اول درخواست دادن؛ آمادگی نسبتاً خوبی هم برای مصاحبه خواهید داشت.
حواستون باشه؛ کسایی که دنبال کار اول هستند انقدر کم مصاحبه میگیرند که هر دونهاش خودش یک الماس هست؛ راحت از دستشون ندید.
راستی: اگر ۱۰۰ تا مصاحبه رو شرکت کردید و همرو از نظر فنی رد شدید؛
متأسفم، شما بهتره زمینه کاری خودتون رو عوض کنید.
پ.ن:
من بدون مصاحبه فنی هم وارد هیچ شرکتی نمیشم مگر اینکه مدیرانی که باهاش کار میکنم رو بشناسم.
چون اینطوری هم اونها از استانداردها و سواد من باخبر میشوند هم من با استانداردهای اونها آشنا میشم و متوجه سواد تیم خواهم شد.
خیلی وقتا خودم کسی هستم که درخواست مصاحبه فنی میده.
نتایج
از نظر تعداد پارامتر و با توجه به اینکه مدل
یک مقدار زیادی طول خواهد کشید تا شخصاً تست کنم ولی حتماً اینکار رو خواهم کرد.
بخصوص اگر بر اساس این مدل
پ.ن : این مدل بیش از ۱۴۰ زبان رو پشتیبانی میکنه.
Gemma3
روی LMSys
رو دیدید ؟از نظر تعداد پارامتر و با توجه به اینکه مدل
Reasoning
نیست بنظر خیره کننده میاد.یک مقدار زیادی طول خواهد کشید تا شخصاً تست کنم ولی حتماً اینکار رو خواهم کرد.
بخصوص اگر بر اساس این مدل
Reasoning
مدلهای مختلف هم توسعه داده بشهپ.ن : این مدل بیش از ۱۴۰ زبان رو پشتیبانی میکنه.
Python Hints
نتایج Gemma3 روی LMSys رو دیدید ؟ از نظر تعداد پارامتر و با توجه به اینکه مدل Reasoning نیست بنظر خیره کننده میاد. یک مقدار زیادی طول خواهد کشید تا شخصاً تست کنم ولی حتماً اینکار رو خواهم کرد. بخصوص اگر بر اساس این مدل Reasoning مدلهای مختلف هم توسعه داده…
پست به اشتباه اینجا گذاشته شد.
هدف @pytens بود 🤦😬
هدف @pytens بود 🤦😬
Forwarded from RandRng
و تمام؛ یک سری از دیوایسهای گوگل پیکسل آپدیتی رو دریافت کردن که
فعلا فقط shell رو داره ولی درآینده ( آندروید ۱۶ قابلیتی برای اجرای
با توجه به قدرت
native terminal
داره Debian linux
هم هست.فعلا فقط shell رو داره ولی درآینده ( آندروید ۱۶ قابلیتی برای اجرای
GUI Apps
هم اضافه خواهد شد) همزمان گوگل داره روی اتصال و کنترل مانیتور هم انجام میده.با توجه به قدرت
Snapdragon X Elite , ...
اتفاقا خیلی هم گزینهي خوبی هست؛ این یعنی مشکلات اجرای داکر منم حل خواهد شد (بله من روی تبلت پایتون و بیشتر Rust
کد میزنم که قبلتر صحبت کردیم)امروز وقتی وارد لینکدین شدم کلی پست راجب پیشنهاد خوندن کتاب
خیلی خوشحالم که این کتاب داره دیده میشه؛ یک زمانی بود آدما زبان برنامهنویسی رو درست نمیشناختند ولی بخاطر جوی که راه افتاده بود
داشتند میخوندند، بعد طرف توی سورس کد پایتونش داشت با استانداردهای جاوا و سیشارپ و ... کد میزد؛ تمیز بود ولی پایتون نبود.
https://www.tg-me.com/Python Hints/com.pyHints/s/3
fluent python
دیدم.خیلی خوشحالم که این کتاب داره دیده میشه؛ یک زمانی بود آدما زبان برنامهنویسی رو درست نمیشناختند ولی بخاطر جوی که راه افتاده بود
Clean coder, clean code , ....
داشتند میخوندند، بعد طرف توی سورس کد پایتونش داشت با استانداردهای جاوا و سیشارپ و ... کد میزد؛ تمیز بود ولی پایتون نبود.
https://www.tg-me.com/Python Hints/com.pyHints/s/3
Python Hints
امروز وقتی وارد لینکدین شدم کلی پست راجب پیشنهاد خوندن کتاب fluent python دیدم. خیلی خوشحالم که این کتاب داره دیده میشه؛ یک زمانی بود آدما زبان برنامهنویسی رو درست نمیشناختند ولی بخاطر جوی که راه افتاده بود Clean coder, clean code , .... داشتند میخوندند،…
#موقت
چندتا کتاب دیگه رو توی این تعطیلات شروع میکنم.
البته ازین تعطیلات برای
چندتا کتاب دیگه رو توی این تعطیلات شروع میکنم.
البته ازین تعطیلات برای
Rust
خوندن بیشتر استفاده خواهم کرد، ولی چندتا کتاب دیدم که بنظر خوب میاد برای پایتون اگر مناسب بود حتماً بعد از تعطیلات راجب اونها هم خواهم نوشت.
Python Hints
#موقت چندتا کتاب دیگه رو توی این تعطیلات شروع میکنم. البته ازین تعطیلات برای Rust خوندن بیشتر استفاده خواهم کرد، ولی چندتا کتاب دیدم که بنظر خوب میاد برای پایتون اگر مناسب بود حتماً بعد از تعطیلات راجب اونها هم خواهم نوشت.
ترجیح میدید کتاب راجب کدوم موضوع باشه ؟
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
Anonymous Poll
43%
Performance optimization
17%
Meta-programming
17%
Concurrency, Parallélism
23%
Async
Python Hints
ترجیح میدید کتاب راجب کدوم موضوع باشه ؟
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
چون زیاد سوال شد :
روی اسم کانال بزنید و بخش Posts شامل تمام کتابهای معرفی شده هست
استوری بودند.
روی اسم کانال بزنید و بخش Posts شامل تمام کتابهای معرفی شده هست
استوری بودند.
Python Hints
ترجیح میدید کتاب راجب کدوم موضوع باشه ؟
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینهای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
با وجود کتاب
نکات مهم!
بخش زیادی از
هست اگر با این موضوعات آشنایی ندارید سعی کنید یاد بگیرید و درک کنیدشون
high performance python
واقعا گزینه Performance optimization
رو برای قشنگی گذاشته بودم، ولی چون بیشترین رای رو آورد با این منابع شروع میکنم.نکات مهم!
بخش زیادی از
optimization
روی پایتون نیازمند درک خوبی از concurrency, parallelism,async,...
هست اگر با این موضوعات آشنایی ندارید سعی کنید یاد بگیرید و درک کنیدشون
Python Hints
و تمام؛ یک سری از دیوایسهای گوگل پیکسل آپدیتی رو دریافت کردن که native terminal داره Debian linux هم هست. فعلا فقط shell رو داره ولی درآینده ( آندروید ۱۶ قابلیتی برای اجرای GUI Apps هم اضافه خواهد شد) همزمان گوگل داره روی اتصال و کنترل مانیتور هم انجام میده.…
#موقت
بتا ۳ آندروید ۱۶ قابلیت اجرای
بعضی از کاربرها
بتا ۳ آندروید ۱۶ قابلیت اجرای
Gnome, Kde
هم داره فقط باید نصبش کنید.بعضی از کاربرها
Gimp, Vscode
رو هم نصب کردند.
Python Hints
زردی من از تو / سرخی تو از من #ai_generated
آتیش شادی جشن ایرانیها
شب گذشته خیلیها رو سوزوند.
لذت میبرم مردمم رو شاد میبینم ♥️
شب گذشته خیلیها رو سوزوند.
لذت میبرم مردمم رو شاد میبینم ♥️
Forwarded from RandRng
Media is too big
VIEW IN TELEGRAM
نوروز مبارک 🌹🎊🎉🎉🎊🎉🌹
امیدوارم سال جدید از سالی که لحظات آخرش هست، بهتر باشه.
پر از خبرای شادی بخش برای ایران و ایرانیان.
سایه آخوند از وطن دور
امیدوارم سال جدید از سالی که لحظات آخرش هست، بهتر باشه.
پر از خبرای شادی بخش برای ایران و ایرانیان.
سایه آخوند از وطن دور
گفتم سال جدیدی یک لیستی از چیزهایی که یک
نکته مهم : من ۹۹.۹٪ وقتا فقط
۱- یک سری چیزها هست که شما باید بلد باشی ربطی به جنگو هم نداره؛ اگر میخوای پیشرفت کنی باید بتونی با اینا کار کنی:
بعضی وقتا
درحد
اگر تاحالا با
باقی موارد رو ولی کم کم یادبگیرید؛ کمی یادگیری - بعد تمرین یا استفاده توی پروژه - به چالش و مشکل خوردن - دوباره یادگیری (ادامه یادگیری) و اینکار رو تکرار کنید.
یادبگیرید هر کدوم از موارد بالا چه زمانی استفاده میشه و برای چه کاری این موضوع خیلی مهم هست؛ کی باید استفاده کنید و کی نباید استفاده کنید.
اما برای خود
استاندارد لاگ نویسی هم که درموردش قبلا یک صحبتی داشتیم اون حداقلش هست و بهترش اینه که به ابزارهای موجود وصل بشه.
یک سری چیزا هم توی خود
واسه همه اینها توی سطوح مختلف کلی ویدئو یوتیوب هست و برای مواردی هم که نیست مطمئنم به زودی درست خواهند کرد دوستان؛ ولی نکته مهمتر اینه که یادبگیرید داکیومنت هم بخونید و خودتون رو آپدیت نگه دارید.
پینوشت:
شخصا برنامهای برای ساخت آموزش روی این مباحث یا پروژهها ندارم.
Django Developer
باید بلد باشه رو بهتون بدم؛ این موارد حداقل چیزهایی هست که به محض ورود به هر پروژه استاندارد Django
باید بلد باشید.نکته مهم : من ۹۹.۹٪ وقتا فقط
Django Rest Framework
استفاده میکنم پس توی متن هرجا گفتم Django
منظورم همون DRF
هست.۱- یک سری چیزها هست که شما باید بلد باشی ربطی به جنگو هم نداره؛ اگر میخوای پیشرفت کنی باید بتونی با اینا کار کنی:
Linux, PostgreSQL, Docker & Docker Compose, Redis, Nginx, Celery & Celery beat
بعضی وقتا
RabbitMQ, Kafka
هم نیازمندی هست؛ بسته به سطح شما به مرور زمان توی موارد بالا حرفهای تر میشید. لینوکس رو خیلیها کنار میذارند که خیلی اشتباه هست؛ ببین کل استک شما قراره بره روی docker, k8s, podman
یا ... وقتی یک اتفاقی توی سیستم میوفته و لاگ سرور بهت داده میشه هم container
شما لینوکس هست هم ۹۹.۹٪ سرور شما؛ اگر نتونی اون مشکل رو بازسازی کنی چطوری میخوای تست بگیری و متوجهاش بشی ؟درحد
LPIC1
هم کفایت میکنه (اگر خواستید مدرک بگیرید؛ پیشنهاد میکنم حتما برای آزمونهای redhat
بخونید)اگر تاحالا با
Linux
کار نکردید؛ پیشنهاد نصب و ... بهتون نمیدم؛ از wsl
برای تمرین کردن آنچه که لازم هست استفاده کنید و محیط گرافیکی رو بندازید دور؛ شما روی سرور محیط گرافیکی ندارد (درست تمرین کنید).باقی موارد رو ولی کم کم یادبگیرید؛ کمی یادگیری - بعد تمرین یا استفاده توی پروژه - به چالش و مشکل خوردن - دوباره یادگیری (ادامه یادگیری) و اینکار رو تکرار کنید.
یادبگیرید هر کدوم از موارد بالا چه زمانی استفاده میشه و برای چه کاری این موضوع خیلی مهم هست؛ کی باید استفاده کنید و کی نباید استفاده کنید.
اما برای خود
Django
حداقل چیزهایی که باید همزمان با Django
بلد باشید؛ نشده جونیور (حتی بدون سابقه کاری) بیاد پیشم و این موارد رو بلد باشه (به فرض اینکه پایتون رو اصولی یاد گرفته) و توی مصاحبه رد بشه؛ اصلا تا حالا نداشتم واقعا میگم :pytest (basics), djagno-silk, drf-spectacular, faker, factory-boy, djangorestframework-simplejwt, django-axes, django-storage
استاندارد لاگ نویسی هم که درموردش قبلا یک صحبتی داشتیم اون حداقلش هست و بهترش اینه که به ابزارهای موجود وصل بشه.
یک سری چیزا هم توی خود
Django
هست؛ مثل throttling, middleware, ...
که مفاهیمی هست که روی بکند داریم و فارغ از فریمورک باید بلد باشید برای همین صحبتی راجب این موارد ندارم.واسه همه اینها توی سطوح مختلف کلی ویدئو یوتیوب هست و برای مواردی هم که نیست مطمئنم به زودی درست خواهند کرد دوستان؛ ولی نکته مهمتر اینه که یادبگیرید داکیومنت هم بخونید و خودتون رو آپدیت نگه دارید.
پینوشت:
شخصا برنامهای برای ساخت آموزش روی این مباحث یا پروژهها ندارم.
Python Hints
گفتم سال جدیدی یک لیستی از چیزهایی که یک Django Developer باید بلد باشه رو بهتون بدم؛ این موارد حداقل چیزهایی هست که به محض ورود به هر پروژه استاندارد Django باید بلد باشید. نکته مهم : من ۹۹.۹٪ وقتا فقط Django Rest Framework استفاده میکنم پس توی متن هرجا…
به این موارد
چندتا مورد امنیتی هم اضافه کنید.
دانستن بعضی چیزها وقتی خودتون رو web developer معرفی میکنید اجباری هست؛ اونقدر واضح و اجباری که هیچکس از شما راجبش شاید سوال هم نکنه؛ ولی توی کار وقتی ببینند رعایت نمیکنید و خرابکاری جدی به بار میارید، از کار کنار گذاشته میشید.
چندتا مورد خیلی سادهاش :
۱- قبل از هر release باید پکیجهای اصلی رو بررسی کنید، حتماً باید چک کنید که مشکل امنیتی نداشته باشه، خیلیها توی دنیای python از مکانیزمهای version lock, pip freeze, ... استفاده میکنند.
این کار درست نیست (قبلاً هم صحبت کردم راجبش بجای
اگر ورژن کتابخانهها رو روی یک ورژن خاص میگذارید؛ حداقل باید ابزاری برای بررسی باگهای مهم و ورژن کتابخانهها داشته باشید؛ که حتماً توی پایپ لاین این موضوع رو بررسی کنه.
۲- حداقل هر چند وقت یکبار یک نگاهی به داکیومنت اون کتابخانه بندازید، ببینید هنوز
۳- صرف اینکه؛
من خیلی دیدم، که توی
یا مثلاً فارغ از اینکه پروژه برای چه کاری هست و چقدر باید امن باشه یا ... همیشه برای
۴- حداقل آشنایی با
و موارد دیگر، البته که خیلی از این موارد رو Django برای شما انجام داده و مطمئن میشه وجود نداشته باشه و خیلی های دیگه هم باید توسط برنامه نویس رعایت بشه.
بعضیها حتی باید توی Test نویسی چک بشه وگرنه پروژه که بزرگ بشه احتمالش زیاد هست باعث نفوذ به سیستم و ... بشه.
یادم باشه بعداً یک
مشکل امنیتی بسیار زیاد توی پروژههای دوستان میبینم و بهتون اطمینان خاطر میدم که به هیچوجه من ادعایی روی سواد امنیتی و ... ندارم و این موارد بایدهای
چندتا مورد امنیتی هم اضافه کنید.
دانستن بعضی چیزها وقتی خودتون رو web developer معرفی میکنید اجباری هست؛ اونقدر واضح و اجباری که هیچکس از شما راجبش شاید سوال هم نکنه؛ ولی توی کار وقتی ببینند رعایت نمیکنید و خرابکاری جدی به بار میارید، از کار کنار گذاشته میشید.
چندتا مورد خیلی سادهاش :
۱- قبل از هر release باید پکیجهای اصلی رو بررسی کنید، حتماً باید چک کنید که مشکل امنیتی نداشته باشه، خیلیها توی دنیای python از مکانیزمهای version lock, pip freeze, ... استفاده میکنند.
این کار درست نیست (قبلاً هم صحبت کردم راجبش بجای
=
از ~=
استفاده کنید) شما حداقل باید patch هارو بصورت خودکار بگیرید.اگر ورژن کتابخانهها رو روی یک ورژن خاص میگذارید؛ حداقل باید ابزاری برای بررسی باگهای مهم و ورژن کتابخانهها داشته باشید؛ که حتماً توی پایپ لاین این موضوع رو بررسی کنه.
۲- حداقل هر چند وقت یکبار یک نگاهی به داکیومنت اون کتابخانه بندازید، ببینید هنوز
maintain
میشه یا deprecate
شده ؟ ۳- صرف اینکه؛
JWT
و SHA-256
استفاده میکنید اپلیکیشن شما امن نیست.من خیلی دیدم، که توی
jwt
متأسفانه بعضیها اطلاعات کاربر رو میگذارند که خب خیلی اشتباه هست.یا مثلاً فارغ از اینکه پروژه برای چه کاری هست و چقدر باید امن باشه یا ... همیشه برای
password hash
از الگوریتم خاصی استفاده میکنند مثلا sha2-256
۴- حداقل آشنایی با
SQL-Injection, XSS, ...
رو باید داشته باشیدو موارد دیگر، البته که خیلی از این موارد رو Django برای شما انجام داده و مطمئن میشه وجود نداشته باشه و خیلی های دیگه هم باید توسط برنامه نویس رعایت بشه.
بعضیها حتی باید توی Test نویسی چک بشه وگرنه پروژه که بزرگ بشه احتمالش زیاد هست باعث نفوذ به سیستم و ... بشه.
یادم باشه بعداً یک
checklist
مخصوص DRF
برای این موضوع آپلود کنم؛ تمام موارد رو حداقل در حد آشنایی بدونید و مطمئن بشید پروژه امن هست.مشکل امنیتی بسیار زیاد توی پروژههای دوستان میبینم و بهتون اطمینان خاطر میدم که به هیچوجه من ادعایی روی سواد امنیتی و ... ندارم و این موارد بایدهای
Software Engineering
هست.یکی از خوبای یوتیوب ویدئو گذاشته؛ ولی اینبار
این برای شما :
Youtube link
فقط دقت کنید؛ این برای شروع هست با ۴ ساعت آموزش فکر نکنید متخصص بکند شدیدا. 😁
باقیش رو خودتون دنبال کنید و بخونید.
Django
نیست بلکه زده توی آموزش FastAPI
برای من که دیر شده شاید ولی چند نفری پرسیدید FastAPI
منبع شروع معرفی کنم؛ این برای شما :
Youtube link
فقط دقت کنید؛ این برای شروع هست با ۴ ساعت آموزش فکر نکنید متخصص بکند شدیدا. 😁
باقیش رو خودتون دنبال کنید و بخونید.
YouTube
FastAPI Python Tutorial: Build an Analytics API from Scratch
FastAPI Python Tutorial: Build an Analytics API from Scratch
Own your own data pipeline and built an Analytics API from scratch in this tutorial. We'll go step-by-step building a production-ready API microservice so you can harness time-series data to analyze…
Own your own data pipeline and built an Analytics API from scratch in this tutorial. We'll go step-by-step building a production-ready API microservice so you can harness time-series data to analyze…
https://www.tg-me.com/pytens/1598
خواستم یادی کنم از #توله_مجاهد این روزا خیلی خودشو داره پاره میکنه 😂
خواستم یادی کنم از #توله_مجاهد این روزا خیلی خودشو داره پاره میکنه 😂
Telegram
دستاوردهای یادگیری عمیق(InTec)
اینا قوی نیستند ما ضعیف هستیم.
سمت راست رو نقی :
۱- ۱۷ روز اعتصاب غذا، نه لاغر شد نه ضعف داشت نه هیچ
۲- تازه چندسال پیش وضعیت کلیهاش وخیم بود و داشت از دست میداد
سمت چپ توماج :
۱- پاهاش رو شکستن
۲- چشمش داشت کور میشد
۳- بقول خودش انقدر زدنش که همه…
سمت راست رو نقی :
۱- ۱۷ روز اعتصاب غذا، نه لاغر شد نه ضعف داشت نه هیچ
۲- تازه چندسال پیش وضعیت کلیهاش وخیم بود و داشت از دست میداد
سمت چپ توماج :
۱- پاهاش رو شکستن
۲- چشمش داشت کور میشد
۳- بقول خودش انقدر زدنش که همه…
Python Hints
https://github.com/pykeras/neovim بالاخره آماده شد. تست هم رفتیم با ۸ نفر از دوستان و ۲ تا از بچههای گروه خودمون. فکر میکنم خوب باشه. توی ReadMe اصل داستان رو گفتم؛ نکاتی هم برای آنان که میاندیشند وجود داره
از اون موقع خیلی تغییرات داشته (اکثرا برای اینکه توی سرعت توسعه کمک بیشتری بده) :
https://github.com/pykeras/neovim
بنظرم اگر از این تنظیمات
شخصا عادت دارم مشکلات کد رو بیشتر توی
نکته دوم اینکه ارورهای بلند رو هم بجای اینکه مجبور بشید توی ترمینال ببینید؛ حالا با بردن
یک سری تغییرات دیگه هم این مدت داشت (بیشتر fix بود)
برای مثال
درست کار نمیکرد؛ بک پنجره
در نهایت اگر بهبود دیگری وجود داشت ممنون میشم بهم بگید؛ منم لذت میبرم سرعت توسعه کدهام بیشتر بشه.
https://github.com/pykeras/neovim
بنظرم اگر از این تنظیمات
neovim
استفاده میکنید حتما این تغییرات آخر رو داشته باشید.شخصا عادت دارم مشکلات کد رو بیشتر توی
terminal
ببینم؛ مثل اینکه خیلی از دوستان اینکار رو نمیکنند. برای همین updatetime
روی تغییرات و پیامهای مربوط به diagnostic
رو از 5sec
آوردم روی 150ms
.نکته دوم اینکه ارورهای بلند رو هم بجای اینکه مجبور بشید توی ترمینال ببینید؛ حالا با بردن
cursor
روی اون خط بصورت کامل توی diagnostic float
میتونید ببینید که راحت تر شده (راجب این هنوز خودم شک دارم که بهتر هست یا نه ولی چون درخواست براش زیاد بود انجامش دادم)یک سری تغییرات دیگه هم این مدت داشت (بیشتر fix بود)
برای مثال
<leader>gdp
: goto definition peek درست کار نمیکرد؛ بک پنجره
floating
از اون تابع یا کلاس باز میکنه و علاوه بر اینکه میتونید جزئیات کد رو ببینید؛ حتی میتونید توی همون پنجره ادیتهای سریع رو توی همون فایل انجام بدید و ...در نهایت اگر بهبود دیگری وجود داشت ممنون میشم بهم بگید؛ منم لذت میبرم سرعت توسعه کدهام بیشتر بشه.
GitHub
GitHub - pykeras/neovim: Basic Neovim setup with useful plugins for Python and Rust
Basic Neovim setup with useful plugins for Python and Rust - pykeras/neovim
Python Hints
به این موارد چندتا مورد امنیتی هم اضافه کنید. دانستن بعضی چیزها وقتی خودتون رو web developer معرفی میکنید اجباری هست؛ اونقدر واضح و اجباری که هیچکس از شما راجبش شاید سوال هم نکنه؛ ولی توی کار وقتی ببینند رعایت نمیکنید و خرابکاری جدی به بار میارید، از کار…
وقتی صحبت از امنیت میشه خیلی از توسعه دهندههای اینکار رو وظیفه تیم امنیت میدونند؛ که خب درست هم هست ولی تا یک جایی. شما هم بعنوان توسعه دهنده باید یک سری موارد رو بدونید.
مثلا خیلی دیدم؛ تیمهای تست نفوذ فراموش میکنند (دسترسی ندارند) الگوریتم
دمشون گرم؛ تیم توسعه
توی بعضی مواقع هم دانستن بعضی نکات امنیتی برای
خیلی از برنامهنویسها سرویس login امنی دارند که از موارد امنیتی خوبی هم استفاده میکنه
فرض کنید شما
برای همین کسی که با این موارد آشنا هست؛ برای اینکه
البته که من برای این مثال دست روی یک موردی گذاشتم که خیلیها رعایت نمیکنند (شاید نیازی هم ندارند) و خیلیها بلد نیستند (باید دنبال یک جیزی هم میگشتم که خود
یا مثلا توی کار با دیتا قبول نکردن دیتای pickle؛ اینو برگردید بالا من همون اوایل شروع کار کانال گفتم با مثال و حدود ۶ ماه قبل یکی از خوبای دنیای تکنولوژی با همین روش بهش نفوذ شد (
یا توی شرکتهایی که یوزر فایل آپلود میکنه و نیروی انسانی باید فایل رو بررسی کنه؛ خیلی وقتا دیدم فقط پسوند فایل بررسی میشه و ...
حالا چه چیزهایی رو باید بعنوان دولوپر بدونید ؟ OWASP TOP 10 حداقلی ترین مواردی هست که شما بعنوان یک دولوپر باید بشناسید و راهای مقابله باهاش رو هم بلد باشید.
ولی بطور خاص برای
OWASP cheatsheet for DRF
من یک
مثلا خیلی دیدم؛ تیمهای تست نفوذ فراموش میکنند (دسترسی ندارند) الگوریتم
hash
کردن پسورد داخل دیتابیس رو چک کنند؛ اینجا دانش شما بعنوان برنامهنویس پروژه خودش رو نشون میده و یک لایه اطمینان بیشتر برای پروژه خواهد بود.دمشون گرم؛ تیم توسعه
Django
رو میگم چرا که اکثر اتکهای مهم رو تا جایی که امکانش هست جلوگیری میکنند و برای همین هم همیشه میگم بکند رو فارغ از فریمورک یاد بگیرید. با این حال بسیاری دولوپر Django
هست که حتی زحمت بررسی و آپدیت به آخرین پچهای امنیتی رو به خودش نمیده مثلا pip freeze
و version locking
استفاده کرده.توی بعضی مواقع هم دانستن بعضی نکات امنیتی برای
optimization
بهتون کمک میکنه؛ مثلا توی password hash
ممکن هست تحت یک شرایط خاصی اصلا الگوریتمی مثل Argon2
به کار شما نیاد و به دلایلی بهش نیاز نداشته باشید تحت این شرایط میتونید برگردید روی sha256
و از اون استفاده کنید (این یک مثال بود اگر argon2
رو نمیشناسید درموردش بخونید؛ توی لیست PASSWORD_HASHERS
های Django
هم هست ولی خود Django
از PBKDF2
استفاده میکنه پیشفرض)خیلی از برنامهنویسها سرویس login امنی دارند که از موارد امنیتی خوبی هم استفاده میکنه
throttling, brute-force blocker, hashing
و ... اما بعضی موارد باید فراتر ازین بره؛ چیزی که خیلی ندیدم حتی روی بعضی سرویسهای لاگین شرکتهای بزرگ و موارد حساس.فرض کنید شما
login
با ایمیل اعضای شرکت بزنید (ایمیلهای شرکتی اصول خاصی داره و راحت بدست میاد) اگر ایمیل اشتباه باشه response time
شاید زیر 20ms
باشه ولی وقتی ایمیل درست هست بالای 100ms
میشه این یکی از تکنیکهای قدیمی مورد استفاده برای نفوذ به صفحات ادمین بوده و هست. شما وقتی username. email
رو پیدا کنی یک نگرانی کمتر خواهی داشت.برای همین کسی که با این موارد آشنا هست؛ برای اینکه
response time
لاگین درست و غلط رو یکسان کنه وقتی میبینه یوزر وجود نداره بجای اینکه درجا پاسخ رو برای کاربر بفرسته یکبار پسورد رو با یک چیز رندم (طبق validation
نمیتونه توی دیتابیس باشه) حساب میکنه و بعد response
اطلاعات غلط روی لاگین رو بر میگردونه.البته که من برای این مثال دست روی یک موردی گذاشتم که خیلیها رعایت نمیکنند (شاید نیازی هم ندارند) و خیلیها بلد نیستند (باید دنبال یک جیزی هم میگشتم که خود
django
امن نکرده باشه)یا مثلا توی کار با دیتا قبول نکردن دیتای pickle؛ اینو برگردید بالا من همون اوایل شروع کار کانال گفتم با مثال و حدود ۶ ماه قبل یکی از خوبای دنیای تکنولوژی با همین روش بهش نفوذ شد (
hugging face
رو منظورم هست)یا توی شرکتهایی که یوزر فایل آپلود میکنه و نیروی انسانی باید فایل رو بررسی کنه؛ خیلی وقتا دیدم فقط پسوند فایل بررسی میشه و ...
حالا چه چیزهایی رو باید بعنوان دولوپر بدونید ؟ OWASP TOP 10 حداقلی ترین مواردی هست که شما بعنوان یک دولوپر باید بشناسید و راهای مقابله باهاش رو هم بلد باشید.
ولی بطور خاص برای
Django Rest Framework
حداقل این cheathseet
رو باید داشته باشد OWASP cheatsheet for DRF
من یک
cheatsheet
شخصی خودم دارم (شامل مواردی از بخشهای مختلف همین cheatsheet
هم هست) ولی متاسفانه نمیتونم به اشتراک بذارم چون آخرین ورژن رو با داکیومنت شرکت ادغام کردم. اما پیشنهاد میدم لینک بالا رو بخونید و حتما حتما حتما نگاهی هم به رفرنسهاشون بندازید این خیلی مهمه.cheatsheetseries.owasp.org
Django REST Framework - OWASP Cheat Sheet Series
Website with the collection of all the cheat sheets of the project.